package com.daffodil.workable.service;

import java.util.List;

import com.daffodil.core.entity.Query;
import com.daffodil.workable.entity.WorkableTask;
import com.daffodil.workable.entity.WorkableTask.Version;

/**
 * -计划任务Service接口
 * @author yweijian
 * @date 2022-04-06
 * @version 1.0
 * @description
 */
public interface IWorkableTaskService {

    /**
     * -分页查询计划任务列表
     * @param query 计划任务
     * @return 计划任务
     */
    public List<WorkableTask> selectWorkableTaskList(Query<WorkableTask> query);

    /**
     * -查询计划任务
     * @param id 计划任务ID
     * @return 计划任务
     */
    public WorkableTask selectWorkableTaskById(String id);

    /**
     * -新增计划任务
     * @param workableTask
     */
    public void insertWorkableTask(WorkableTask workableTask);

    /**
     * -修改计划任务
     * @param workableTask
     */
    public void updateWorkableTask(WorkableTask workableTask);

    /**
     * -删除计划任务
     * @param ids
     */
    public void deleteWorkableTaskByIds(String[] ids);

    /**
     * -部署计划任务
     * @param ids
     */
    public void deployWorkableTaskByIds(String[] ids, Version version);
    
    /**
     * -执行计划任务
     * @param ids
     */
    public void runWorkableTaskByIds(String[] ids, String runmode);

    /**
     * -作废计划任务
     * @param ids
     */
    public void trashWorkableTaskByIds(String[] ids);

}
